如何在AngularJs中取消路线更改事件?
我当前的代码是
$rootScope.$on("$routeChangeStart", function (event, next, current) { // do some validation checks if(validation checks fails){ console.log("validation failed"); window.history.back(); // Cancel Route Change and stay on current page } });
即使验证失败,Angular也会提取下一个模板和关联的数据,然后立即切换回上一个视图/路线。如果验证失败,我不希望angular提取下一个模板和数据,理想情况下应该没有window.history.back()。我什至尝试过event.preventDefault()但没有用。
代替$routeChangeStart使用$locationChangeStart
$routeChangeStart
$locationChangeStart
例:
$scope.$on('$locationChangeStart', function(event, next, current) { if ($scope.form.$invalid) { event.preventDefault(); } });